Networks enable computers and other devices to communicate. For example, networks can carry data representing video, audio, e-mail, and so forth. Typically, data sent across a network is divided into smaller messages. The structure and contents of the messages depend on the networking technology being used. For example, Internet Protocol (IP) datagrams include a destination address that is much like an address written on the outside of an envelope. Devices, known as routers, receive datagrams and can determine how to forward the datagram further toward its destination based on the destination address. Another network technology is known as Asynchronous Transfer Mode (ATM). In ATM, data messages, known as cells, include identification of a “circuit” that leads from the sender to the receiver. That is, rather than identifying a destination, an ATM cell identifies a path connecting the sender and receiver.
To complicate matters conceptually, IP and ATM can both be used to support the other technology. For example, an IP datagram can be divided across different ATM cells. A receiver can reassemble the IP datagram after receiving the ATM cells.
IP datagrams and ATM cells are examples of protocol data units (PDUs). A PDU includes a payload and header. The data in the header is often used by network protocols in handling the PDU (e.g., determining where to forward the PDU, whether transmission errors occurred, and so forth). Other examples of PDUs include frames (e.g., Ethernet and Synchronous Optical Network (SONET) frames) and segments (e.g., Transmission Control Protocol (TCP) segments).
A sender can send data to a single receiver. This is known as “unicasting”. Alternately, a sender (or multiple senders) can send the same data to multiple members of a group. For example, a sender can send streaming video data to many different group members located at different points in the network. This is known as “multicasting”.
Different protocols support multicasting in different ways. For example, in the Internet Protocol, instead of specifying a single destination, an IP datagram can specify a group address. ATM networks may also support multicasting in a variety of ways. For example, multicasting may be provided by a “tree” of circuits where a given circuit may feed diverging circuits downstream. Again, the above is merely a sampling of a wide variety of approaches to multicasting.